The effective processing of digital data is often dependent on the efficient use of limited computing resources such as memory. The term memory can encompass any type of computer-readable storage medium, although memory used by computers in the processing of digital data is often random access memory. Often, fixed amounts of memory for processing digital data are pre-allocated. Sometimes, however, such fixed memory allocations are inefficient. One situation where inefficiencies can occur is when multiple sets of sequenced units of digital data are to be processed concurrently.
It is desirable to enhance the efficient use of memory for processing sequenced digital data in general, and for rendering of digital media content in particular. Digital media content is comprised of sequenced samples of video, audio, images, text, and/or graphics. When media content players present such sequenced samples to users, they are referred to as streams of media content.
Newer media content players are configured to concurrently render more than one independently-controlled stream of media content (for example, a main movie along with features such as a director's commentary, actor biographies, or advertising). Such media content players may also be capable of rendering user-selectable visible or audible objects (for example, various menus, games, special effects, or other options) concurrently with one or more streams of media content. Rendering of media content—especially concurrently playing, independently-controlled media content streams—can consume significant amounts of limited player resources, particularly memory.